User plane function (UPF) load balancing supporting multiple slices

ABSTRACT

Embodiments are directed towards systems and methods for user plane function (UPF) and network slice load balancing within a 5G network. Example embodiments include systems and methods for load balancing based on current UPF load and thresholds that depend on UPF capacity; UPF load balancing using predicted throughput of new UE on the network based on network data analytics; UPF load balancing based on special considerations for low latency traffic; UPF load balancing supporting multiple slices, maintaining several load-thresholds for each UPF and each slice depending on the UPF and network slice capacity; and UPF load balancing using predicted central processing unit (CPU) utilization and/or predicted memory utilization of new UE on the network based on network data analytics.

TECHNICAL FIELD

The present disclosure relates generally to digital message communications and, more particularly, to user plane function (UPF) load balancing within a Fifth Generation (5G) communications network.

BRIEF SUMMARY

As the use of smart phones and Internet of Things (IoT) devices has increased, so too has the desire for more reliable, fast, and continuous transmission of content. In an effort to improve the content transmission, networks continue to improve with faster speeds and increased bandwidth. The advent and implementation of 5G technology has resulted in faster speeds and increased bandwidth, but with the drawback of potentially overloading certain portions of the network in certain circumstances. It is with respect to these and other considerations that the embodiments described herein have been made.

5G Core (5GC) is the heart of a 5G mobile network. It establishes reliable, secure connectivity to the network for end users and provides access to its services. The core domain handles a wide variety of essential functions in the mobile network, such as connectivity of new user equipment (UE) and mobility management, authentication and authorization, subscriber data management and policy management, among others. 5G Core network functions are completely software-based and designed as cloud-native, meaning that they're agnostic to the underlying cloud infrastructure, allowing higher deployment agility and flexibility.

With the advent of 5G, industry experts defined how the core network should evolve to support the needs of 5G New Radio (NR) and the advanced use cases enabled by it. Together, they developed the 3rd Generation Partnership Project (3GPP) standard for core networks known as 5G Core (5GC).

The 5GC architecture is based on what is called a Service-Based Architecture (SBA), which implements IT network principles and a cloud-native design approach. In this architecture, each network function (NF) offers one or more services to other NFs via Application Programming Interfaces (API). Each NF, such as the user plane function (UPF) and the Session Management Function (SMF) is formed by a combination of small pieces of software code called as microservices. Some microservices can even be re-used for different NFs, making implementation more effective and facilitating independent life-cycle management—which allows upgrades and new functionalities to be deployed with zero impact on running services.

Briefly described, embodiments are directed toward systems and methods for user plane function (UPF) and network slice load balancing within a 5G network. Example embodiments include: systems and methods for load balancing based on current UPF load and thresholds that depend on UPF capacity; systems and methods for UPF load balancing using predicted throughput of new UE on the network based on network data analytics; systems and methods for UPF load balancing based on special considerations for low latency traffic; systems and methods for UPF load balancing supporting multiple slices, maintaining several load-thresholds for each UPF and each slice depending on the UPF and network slice capacity; and systems and methods for UPF load balancing using predicted central processing unit (CPU) utilization and/or predicted memory utilization of new UE on the network based on network data analytics.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Non-limiting and non-exhaustive embodiments are described with reference to the following drawings. In the drawings, like reference numerals refer to like parts throughout the various figures unless otherwise specified.

For a better understanding of the present invention, reference will be made to the following Detailed Description, which is to be read in association with the accompanying drawings:

FIG. 1 illustrates a context diagram of an environment in which UPF load balancing may be implemented in accordance with embodiments described herein;

FIG. 2 illustrates a logical flow diagram showing one embodiment of a process for load balancing based on current UPF load and thresholds that depend on UPF capacity in accordance with embodiments described herein;

FIG. 3 illustrates a logical flow diagram showing one embodiment of a process for selecting the UPF based on generated weights, which is useful in the process of FIG. 2 in accordance with embodiments described herein;

FIG. 4 illustrates a logical flow diagram showing one embodiment of a process for selecting the UPF based on the determined load-regions for a plurality of UPFs and the weights generated based on the determined load regions, which is useful in the process of FIG. 3 in accordance with embodiments described herein;

FIG. 5 illustrates a logical flow diagram showing one embodiment of a process for UPF load balancing using predicted throughput of new user equipment (UE) on the network based on network data analytics in accordance with embodiments described herein;

FIG. 6 illustrates a logical flow diagram showing one embodiment of a process for selecting the UPF, which is useful in the process of FIG. 5 in accordance with embodiments described herein;

FIG. 7 illustrates a logical flow diagram showing one embodiment of a process for selecting the UPF using artificial intelligence (AI) or machine learning (ML) algorithms to perform predictive analysis of throughput, which is useful in the process of FIG. 6 in accordance with embodiments described herein;

FIG. 8 illustrates a logical flow diagram showing one embodiment of a process for UPF load balancing based on special considerations for low latency traffic in accordance with embodiments described herein;

FIG. 9 illustrates a logical flow diagram showing one embodiment of a process for selecting the UPF based on the location of the new UE and load-regions for each UPF defined by load thresholds for non-low latency traffic, which is useful in the process of FIG. 8 in accordance with embodiments described herein;

FIG. 10 illustrates a logical flow diagram showing one embodiment of a process for selecting the UPF based on whether the network traffic is identified as low latency, which is useful in the process of FIG. 9 in accordance with embodiments described herein;

FIG. 11 illustrates a logical flow diagram showing one embodiment of a process for UPF load balancing supporting multiple slices, maintaining several load-thresholds for each UPF and each slice depending on the UPF and network slice capacity in accordance with embodiments described herein;

FIG. 12 illustrates a logical flow diagram showing one embodiment of a process for selecting the network slice based on generated weights, which is useful in the process of FIG. 11 in accordance with embodiments described herein;

FIG. 13 illustrates a logical flow diagram showing one embodiment of a process for selecting the network slice based on determined load-regions for each slice and weights generated based on the determined load regions, which is useful in the process of FIG. 12 in accordance with embodiments described herein;

FIG. 14 illustrates a logical flow diagram showing one embodiment of a process for UPF load balancing using predicted central processing unit (CPU) utilization and/or predicted memory utilization of new user equipment (UE) on the network based on network data analytics in accordance with embodiments described herein;

FIG. 15 illustrates a logical flow diagram showing one embodiment of a process for selecting the UPF, which is useful in the process of FIG. 14 in accordance with embodiments described herein;

FIG. 16 illustrates a logical flow diagram showing one embodiment of a process for selecting the UPF using AI or machine learning (ML) algorithms to perform predictive analysis of CPU utilization and/or predicted memory utilization, which is useful in the process of FIG. 15 in accordance with embodiments described herein;

FIG. 17 illustrates a chart showing an example of possible load-regions that a current load of a UPF may be determined to fall within that may be used in the processes of FIGS. 2-7 and 15-17 in accordance with embodiments described herein.

FIG. 18 illustrates a timeline showing an example of possible UPF load balancing that may occur according to the processes of FIGS. 2-4 with two UPFs determined to fall within particular different load-regions of those shown in FIG. 17 at particular times in accordance with embodiments described herein;

FIG. 19 illustrates a timeline showing an example of possible UPF load balancing that may occur according to the processes of FIGS. 5-7 with two UPFs determined to fall within particular different load-regions of those shown in FIG. 17 at particular times in accordance with embodiments described herein.

FIG. 20 illustrates a chart showing an example of possible load-regions for non-low latency traffic that a current load of a UPF may be determined to fall within that may be used in the processes of FIGS. 8-10 in accordance with embodiments described herein.

FIG. 21 shows a system diagram that describe various implementations of computing systems for implementing embodiments described herein.

DETAILED DESCRIPTION

The following description, along with the accompanying drawings, sets forth certain specific details in order to provide a thorough understanding of various disclosed embodiments. However, one skilled in the relevant art will recognize that the disclosed embodiments may be practiced in various combinations, without one or more of these specific details, or with other methods, components, devices, materials, etc. In other instances, well-known structures or components that are associated with the environment of the present disclosure, including but not limited to the communication systems and networks, have not been shown or described in order to avoid unnecessarily obscuring descriptions of the embodiments. Additionally, the various embodiments may be methods, systems, media, or devices. Accordingly, the various embodiments may be entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects.

Throughout the specification, claims, and drawings, the following terms take the meaning explicitly associated herein, unless the context clearly dictates otherwise. The term “herein” refers to the specification, claims, and drawings associated with the current application. The phrases “in one embodiment,” “in another embodiment,” “in various embodiments,” “in some embodiments,” “in other embodiments,” and other variations thereof refer to one or more features, structures, functions, limitations, or characteristics of the present disclosure, and are not limited to the same or different embodiments unless the context clearly dictates otherwise. As used herein, the term “or” is an inclusive “or” operator, and is equivalent to the phrases “A or B, or both” or “A or B or C, or any combination thereof,” and lists with additional elements are similarly treated. The term “based on” is not exclusive and allows for being based on additional features, functions, aspects, or limitations not described, unless the context clearly dictates otherwise. In addition, throughout the specification, the meaning of “a,” “an,” and “the” include singular and plural references.

FIG. 1 illustrates a context diagram of an environment 100 in which UPF load balancing may be implemented in accordance with embodiments described herein.

UEs 110, such as cellular telephones or other Internet-of-Tings (IoT) devices use 5G wireless cellular telecommunication technology defined by standards set by 3GPP and International Telecommunications Union (ITU) to get data connectivity between applications on the UE and Data Networks (DNs) such as the Internet or private corporate networks. Almost all applications running on the UE, including voice, require such data connectivity. A Protocol Data Unit (PDU) session provides connectivity between applications on a UE and a DN. The UE receives services through a PDU session, which is a logical connection between the UE and DN. A DN is identified by a Data Network Name (DNN). PDU sessions can provide different types of transport services corresponding to the nature of the PDU(s) carried over the PDU session. In various embodiments, a PDU session may be associated with a single DNN and with a single slice identified by Single-Network Slice Selection Assistance Information (S-NSSAI).

The UPF is one of the network functions (NFs) of the 5GC. The UPF, comprising UPF1 104 and UPF2 106 in the present example, is responsible for packet routing and forwarding, packet inspection, quality of service (QoS) handling, and interconnecting external PDU sessions with the DN. Although two UPFs (UPF1 104 and UPF2 106) are shown in the present example, additional UPFs may be utilized in various other embodiments. Each UPF (e.g., UPF1 104 and UPF2 106) is a virtual network function responsible for PDU sessions between the UEs 110 and the DN by anchoring the PDU sessions of various UEs 110 on the individual UPF. The SMF 102 is also one of the NFs of the 5GC and is primarily responsible for interacting with the decoupled data plane, creating updating and removing PDU sessions, selecting particular UPFs on which to anchor PDU sessions when new UEs appear on the network and managing session context with the UPF. Many of such functions are described in the 3GPP TS 23.501 specification.

A network function, such as the SMF 102 and the UPF, such as UPF1 104 and UPF2 106, can be implemented either as a network elements on dedicated hardware, as a software instance running on dedicated hardware, or as a virtualized function instantiated on an appropriate platform, e.g., a cloud infrastructure. In the present example, UPF1 104 is implemented at data center 1 and UPF2 106 is implemented at data center 2, which is geographically separated from data center 1. The SMF 102 sends messages to the UPF (comprising UPF 1 104 and UPF 2 in the present example) over the N4 reference interface using the Packet Forwarding Control Protocol (PFCP). The PFCP may employ UDP port (8805) and is defined to support Control and User Plane Separation (CUPS). Decoupling other control plane functions from the user plane, together with the 5G Core Access and Mobility Management Function (AMF) (not shown), the SMF 102 performs the role of Dynamic Host Control Protocol (DHCP) server and Internet Protocol (IP) Address Management (IPAM) system. Together with the UPF, the SMF 102 maintains a record of PDU session state by means of a 24 bit PDU Session ID. The SMF 102 sets configuration parameters in the UPF that define traffic steering parameters and ensure the appropriate routing of packets while guaranteeing the delivery of incoming packets, though a Downlink (DL) data notification.

In the present example embodiment, each UPF1 104 and UPF2 106 may have the ability to establish network connectivity and anchor PDU sessions of any UE on the network via various cellular telecommunication base stations and associated antennas 108. To maximize network performance, PDU sessions are by default anchored on the UPF at the data center that is closest geographically to the UE, as illustrated by most of the dashed lines in FIG. 1 for UEs 110 (and an operator defines a service area for each UPF). However, each UPF (e.g., UPF1 104 and UPF2 106) has a maximum network capacity to handle PDU sessions anchored thereon and the associated network traffic. Thus, PDU sessions anchored on a particular UPF (e.g., UPF1 104) and their associated network traffic may cause the UPF to near its maximum capacity or become overloaded. UPF load balancing may then cause the PDU session of the next new UE appearing on the network (e.g., UE 112) to be anchored on a UPF at a data center (e.g., UPF2 106) that is further away than the data center that is closest geographically to the UE. In the present example, UPF1 104 is at or near its maximum capacity with the PDU sessions of all the other UEs currently anchored on it, so UE 112 has a PDU session anchored on UPF2 106 (as shown by dashed line 114) instead of UPF1 104, even though data center 2 of UPF2 106 is further away from the UE 112 than data center 1 of UPF1 104. In various embodiments described herein, there are different particular scenarios and rules in which UPF load balancing may cause the PDU session of the next new UE appearing on the network to be anchored on a UPF at a data center that is further away than the data center that is closest geographically to the UE, which improves overall UPF load balancing and network performance.

FIG. 2 illustrates a logical flow diagram showing one embodiment of a process 200 for load balancing based on current UPF load and thresholds that depend on UPF capacity in accordance with embodiments described herein.

At 202, the SMF 102 maintains load thresholds for each user plane function (UPF) of a plurality of UPFs in a cellular telecommunication network. The plurality of UPFs serve as anchor points between UE in the cellular telecommunication network and a DN. Each UPF of the plurality of UPFs is a virtual network function responsible for interconnecting PDU sessions between the UE and the DN by anchoring the PDU sessions on individual UPFs. The load thresholds for each UPF depend on a respective capacity of each UPF to have PDU sessions anchored thereon. In the present example embodiment, an amount of load put on a UPF by a UE appearing in the cellular telecommunication network is assumed to be identical for all UEs appearing in the cellular telecommunication network.

At 204, the SMF 102 receives a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network. At 206, the SMF 102 selects a UPF of the plurality of UPFs on which to anchor the PDU session based on a location of the new UE and determined load-regions for each UPF of the plurality of UPFs defined by the load thresholds.

At 208, the SMF 102 anchors the PDU session of the new UE to the selected UPF.

FIG. 3 illustrates a logical flow diagram showing one embodiment of a process 300 for selecting the UPF based on generated weights, which is useful in the process 200 of FIG. 2 in accordance with embodiments described herein.

At 302, the SMF 102 generates weights for selecting the UPF based on the determined load-regions.

At 304, the SMF 102 selects the UPF based on the generated weights.

FIG. 4 illustrates a logical flow diagram showing one embodiment of a process 400 for selecting the UPF based on the determined load-regions for a plurality of UPFs and the weights generated based on the determined load regions, which is useful in the process 300 of FIG. 3 in accordance with embodiments described herein.

At 402, the SMF 102 generates multiple load-regions. Each load-region corresponds to a different range of current load of a UPF defined by one or more of lower and upper threshold percentages of UPF load capacity.

At 404, the SMF 102 receives the request to anchor the PDU session.

At 406, the SMF 102 determines a load region from the multiple load-regions that a current load of the UPF falls within.

At 408, the SMF 102 determines whether there are additional UPFs in the plurality of UPFs on which the PDU session may be anchored. If it is determined there are additional UPFs on which the PDU session may be anchored, then the process 400 proceeds back to 406 to determine a load region from the multiple load-regions that a current load of the additional UPF falls within. If it is determined there are not additional UPFs on which the PDU session may be anchored, then the process 400 proceeds to 410.

At 410, the SMF 102 selects a UPF of the plurality of UPFs based on the determined load-regions for the plurality of UPFs and the weights generated based on the determined load regions.

In an example embodiment, the SMF 102 generates a lowest load-region indicating a current UPF load less than a first threshold percentage of UPF capacity; generates one or more intermediate non-overlapping load-regions each defined by respective lower and upper threshold percentages of UPF capacity and indicating a current load greater than the lowest load-region; and generates a highest load-region indicating a current UPF load greater than a second threshold percentage of UPF capacity and greater than the intermediate non-overlapping load-regions.

In the present example embodiment, each UPF is associated with a different respective geographic UPF service area. Selecting the UPF based on the generated weights and the determined load-regions for the UPFs may include determining a particular UPF has (i.e., is at a data center in) a respective geographic area within which the location of the new UE falls (i.e., is at a data center that is closest geographically to the UE compared to data centers of other UPFs). The particular UPF may then be selected in response to the determined load-region of the particular UPF being a load-region indicating its current load is below a threshold capacity.

In some embodiments, the SMF 102 determines a particular UPF has a respective geographic area within which the location of the new UE falls. The SMF 102 determines whether the particular UPF has a determined load region indicating its current load is in a different load region indicating a higher current load of the particular UPF than a current load of another UPF. In response to this determination, the SMF 102 weights the selection of a UPF. In particular, the UPF selection by the SMF for load-balancing is based on weighted scheduling of load (UEs) on the UPFs. This weighted scheduling may be credit/token-based (e.g., weighted round robin) or probability based (e.g., using statistical based scheduling algorithms using probability). For example, the SMF 102 may weight the selection of a UPF such that a probability that the particular UPF is selected is lower than a probability of selection of the other UPF. In some embodiments, the selection of the UPF is weighted by using credit/token-based weighted scheduling or probability-based weighted scheduling such that the frequency of selection of the particular UPF decreases as a difference between a higher current load of the particular UPF and a lower current load of at least one UPF of the plurality of UPFs increases, as indicated by the load regions determined for each UPF of the plurality of UPFs.

FIG. 5 illustrates a logical flow diagram showing one embodiment of a process 500 for UPF load balancing using predicted throughput of a new UE on the network based on network data analytics in accordance with embodiments described herein.

At 502, the SMF 102 maintains load thresholds for each user plane function (UPF) of a plurality of UPFs in a cellular telecommunication network. The plurality of UPFs serve as anchor points between UE in the cellular telecommunication network and a DN. Each UPF of the plurality of UPFs is a virtual network function responsible for interconnecting PDU sessions between the UE and the DN by anchoring the PDU sessions on individual UPFs. The load thresholds for each UPF depend on a respective capacity of each UPF to have PDU sessions anchored thereon. However, in the present example embodiment, an amount of load put on a UPF by a UE appearing in the cellular telecommunication network is not assumed to be identical for all UEs appearing in the cellular telecommunication network.

At 504, the SMF 102 receives a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network.

At 506, the SMF 102 selects a UPF of the plurality of UPFs on which to anchor the PDU session based on a location of the new UE, determined load-regions for each UPF of the plurality of UPFs defined by the load thresholds and predicted throughput of the new UE based on network data analytics. In an example embodiment, the network data analytics is provided via a network data analytics function (NWDAF) of a 5G mobile network of which the cellular telecommunication network is comprised.

At 508, the SMF 102 anchors the PDU session of the new UE to the selected UPF.

FIG. 6 illustrates a logical flow diagram showing one embodiment of a process 600 for selecting the UPF, which is useful in the process 500 of FIG. 5 in accordance with embodiments described herein.

At 602, in selecting the UPF, the SMF 102 uses the network data analytics to predict throughput of the UE and load on a UPF of the new UE appearing on the cellular telecommunication network based on the predicted throughput.

At 604, the SMF 102 selects a UPF of the plurality of UPFs on which to anchor the PDU session based on a location of the new UE, load-regions for each UPF of the plurality of UPFs defined by the load thresholds and the predicted load of the new UE on a UPF.

FIG. 7 illustrates a logical flow diagram showing one embodiment of a process 700 for selecting the UPF using artificial intelligence (AI) or machine learning (ML) algorithms to perform predictive analysis of throughput, which is useful in the process 600 of FIG. 6 in accordance with embodiments described herein.

At 702, in using the network data analytics to predict throughput of the new UE and load on a UPF, the SMF 102 uses artificial intelligence (AI) or machine learning (ML) algorithms to perform predictive analysis of throughput of the new UE and resulting load on a UPF of the new UE appearing on the cellular telecommunication network based on historical activity of the new UE appearing on the cellular telecommunication network.

At 704, the SMF 102 implements a weighted scheduling of load on UPFs to achieve UPF load-balancing based on the predicted throughput of the new UE and resulting predicted load on a UPF of the new UE. This weighted scheduling can be implemented using credit/token based scheduling algorithms or statistical based scheduling algorithms (using probability). The SMF 102 may weight selection of a particular UPF of the plurality of UPFs based on the predicted throughput of the new UE and resulting predicted load on a UPF of the new UE by using credit/token-based weighted scheduling or probability-based weighted scheduling. For example, in one embodiment, the SMF 102 changes a probability of whether a particular UPF of the plurality of UPFs will be selected based on the predicted throughput of the new UE and resulting predicted load on a UPF of the new UE. In an example embodiment, the SMF 102 weights selection of the particular UPF to not overload other UPFs of the plurality of UPFs as compared to the particular UPF in response to a current load of the particular UPF being currently in a particular load-region as compared to other UPFs of the plurality of UPFs and the predicted load being at a particular level. For example, the SMF 102 may increase a probability that a particular UPF will be selected in response to a current load of the particular UPF being currently in a particular load-region as compared to other UPFs and the predicted load being at a particular level. In an example embodiment, the SMF 102 may weight selection of the particular UPF in the plurality of UPFs to not overload the particular UPF beyond a threshold amount compared to other UPFs in the plurality of UPFs based on the predicted load by using credit/token-based weighted scheduling or probability-based weighted scheduling based on the predicted load. For example, the SMF 102 may decrease a probability that the particular UPF will be overloaded beyond a threshold amount compared to other UPFs based on the predicted load by changing the probability of whether the particular UPF will be selected based on the predicted load Such load balancing may instead be achieved using credit/token based scheduling (e.g., weighted round robin).

FIG. 8 illustrates a logical flow diagram showing one embodiment of a process 800 for UPF load balancing based on special considerations for low latency traffic in accordance with embodiments described herein.

At 802, the SMF 102 maintains load thresholds for each user plane function (UPF) of a plurality of UPFs in a cellular telecommunication network. The plurality of UPFs serve as anchor points between UE in the cellular telecommunication network and a DN. Each UPF of the plurality of UPFs is a virtual network function responsible for interconnecting PDU sessions between the UE and the DN by anchoring the PDU sessions on individual UPFs. The load thresholds for each UPF depend on a respective capacity of each UPF to have PDU sessions anchored thereon. In the present example embodiment, an amount of load put on a UPF by a UE appearing in the cellular telecommunication network is assumed to be identical for all UEs appearing in the cellular telecommunication network.

In some embodiments, the load thresholds may be reduced by a percentage amount of capacity dedicated for low-latency network traffic. For example, a percentage amount of capacity dedicated for low-latency network traffic may be 10% and thus the load thresholds for non-low latency traffic (such as the thresholds maintained in the process 200 of FIG. 2 ) may be reduced by 10%.

At 804, the SMF 102 receives a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network.

At 806, the SMF 102 selects a UPF of the plurality of UPFs on which to anchor the PDU session based on whether traffic of the PDU session is identified as low latency and a location of the new UE.

At 808, the SMF 102 anchors the PDU session of the new UE to the selected UPF.

FIG. 9 illustrates a logical flow diagram showing one embodiment of a process 900 for selecting the UPF based on the location of the new UE and load-regions for each UPF defined by load thresholds for non-low latency traffic, which is useful in the process 800 of FIG. 8 in accordance with embodiments described herein.

At 902, the SMF 102 receives a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network.

At 904, the SMF 102 determines whether the traffic of the PDU session is identified as low latency. In the present example embodiment, the selection of the UPF is based on dedicating a percentage of capacity of each UPF of the plurality of UPFs to low-latency traffic of PDU sessions. Latency may be measured in the time elapsed from when the client sends the first byte of a request to the moment the server receives it, or it may be measured by the total journey time for a packet to travel to the server and then back to the client. In the present example, on the downlink, the latency is measured from the time that the UPF receives the packet until the time that the packet is delivered to the UE. On the uplink, the latency is measured from the time that the UE sends the packet until the time that the packet is received by the UPF. For example, low latency network traffic may support operations that require near real-time access to rapidly changing data. Low latency is desirable in a wide range of use cases. In a general sense, lower latency is nearly always an improvement over slower packet transport. Low latency is desirable in online gaming as it contributes to a more realistic gaming environment. The term low latency is often used to describe specific business use cases, in particular high-frequency trading in capital markets. If traffic of the PDU session is identified as low latency, then the process 900 proceeds to 906. If traffic of the PDU session is not identified as low latency, then the process 900 proceeds to 908.

At 906, the SMF 102 selects a UPF having a closest associated location to a current location of the new UE.

At 908, the SMF selects a UPF based on the location of the new UE and load-regions for each UPF of the plurality of UPFs defined by the load thresholds for non-low latency traffic.

FIG. 10 illustrates a logical flow diagram showing one embodiment of a process 1000 for selecting the UPF based on whether the network traffic is identified as low latency, which is useful in the process 900 of FIG. 9 in accordance with embodiments described herein.

At 1002, the SMF 102 receives a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network.

At 1004, the SMF 102 determines whether the traffic of the PDU session is identified as low latency. If traffic of the PDU session is identified as low latency, then the process 1000 proceeds to 1006. If traffic of the PDU session is not identified as low latency, then the process 1000 proceeds to 1008.

At 1006, the SMF 102 selects a UPF having a closest associated location to a current location of the new UE.

At 1008, the SMF 102 selects a UPF based on weights for selecting the UPF generated based on the load-regions, wherein each load-region corresponds to a different range of current load of the UPF defined by one or more of lower and upper threshold percentages of load capacity of the UPF.

In some embodiments, if each UPF of the plurality of UPFs is identified as currently having a current load falling within a low load-region defined by a current load below a particular threshold, then the SMF 102 selects a UPF having a closest associated location to a current location of the new UE.

FIG. 11 illustrates a logical flow diagram showing one embodiment of a process 1100 for UPF load balancing supporting multiple slices, maintaining several load-thresholds for each UPF and each slice depending on the UPF and network slice capacity in accordance with embodiments described herein.

At 1102, the SMF 102 maintains load thresholds for each network slice of a plurality of network slices. In the present example embodiment, each network slice of each respective set of network slices comprises of a set of virtual network resources and network traffic flows associated with the network slice and represents an independent virtualized instance of a network defined by allocation of a subset of available network resources in the cellular telecommunication network. The “user plane” of each network slice of the plurality of network slices is supported by a respective user plane function (UPF) of a plurality of UPFs in a cellular telecommunication network. The plurality of UPFs serve as anchor points between user equipment (UE) in the cellular telecommunication network and a data network (DN). Each UPF of the plurality of UPFs is a virtual network function responsible for interconnecting packet data unit (PDU) sessions between the user equipment (UE) and the DN by anchoring the PDU sessions on individual UPFs. The load thresholds for each network slice depend on a respective capacity of each network slice and total capacity of each UPF supporting each network slice to have PDU sessions anchored thereon. An amount of load put on a network slice by a UE appearing in the cellular telecommunication network is assumed to be identical for all UEs appearing in the cellular telecommunication network.

At 1104, the SMF 102 receives a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network.

At 1106, the SMF 102 selects a network slice of the plurality of network slices on which to anchor the PDU session based on a location of the new UE and determined load-regions for each network slice of the plurality of network slices defined by the load thresholds.

At 1108, the SMF 102 anchors the PDU session of the new UE to the selected network slice and the respective UPF supporting the selected network slice.

FIG. 12 illustrates a logical flow diagram showing one embodiment of a process 1200 for selecting the network slice based on generated weights, which is useful in the process 1100 of FIG. 11 in accordance with embodiments described herein.

At 1202, the SMF 102 generates weights for selecting the network slice based on the determined load-regions.

At 1204, the SMF 102 selects the network slice based on the generated weights.

FIG. 13 illustrates a logical flow diagram showing one embodiment of a process 1300 for selecting the network slice based on determined load-regions for each slice and weights generated based on the determined load regions, which is useful in the process 1200 of FIG. 12 in accordance with embodiments described herein.

At 1302, the SMF 102 generates multiple load-regions. Each load-region corresponds to a different range of current load of a network slice defined by one or more of lower and upper threshold percentages of network slice load capacity. For example, in one embodiment, the SMF 102 may generate a lowest load-region indicating a current network slice load less than a first threshold percentage of network slice capacity; generate one or more intermediate non-overlapping load-regions each defined by respective lower and upper threshold percentages of network slice capacity and indicating a current load greater than the lowest load-region; and generate a highest load-region indicating a current network slice load greater than a second threshold percentage of network slice capacity and greater than the intermediate load-region(s).

At 1304, the SMF 102 receives the request to anchor the PDU session.

At 1306, the SMF 102, in response to receiving the request to anchor the PDU session, determines a load region from the multiple load-regions that a current load of a network slice falls within.

At 1306, the SMF 102 determines whether there are any additional network slides on which the PDU session may be anchored. If it is determined there are additional network slides on which the PDU session may be anchored, then process 1300 proceeds back to 1306 to determine a load region from the multiple load-regions that a current load of the additional network slice falls within. If it is determined there are not additional network slides on which the PDU session may be anchored, then the process 1300 proceeds to 1310.

At 1310, the SMF 102 selects a network slice of the plurality of network slices based on the determined load-regions for the plurality of network slices and the weights generated based on the determined load regions. In some embodiments, each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice (i.e., the geographic area of the data center of the UPF). Selecting a network slice based on the generated weights and the determined load-regions for the plurality of network slices may include determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls. The SMF 102 may then select the particular network slice in response the determined load-region of the particular network slice being a load-region indicating a current load of the particular network slice is below a threshold capacity.

In some embodiments, selecting a network slice based on the generated weights and the determined load-regions for the plurality of network slices may include determining whether the particular network slice has a determined load region indicating a current load of the particular network slice is in a different load region indicating a higher current load of the particular network slice than a current load of another network slice. In response to this, the SMF 102 may weight the selection of a network slice of the plurality of network slices such that the particular network slice is not overloaded compared to the other network slice by using credit/token-based weighted scheduling or probability-based weighted scheduling.

In some embodiments, the selection of a network slice includes determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls. The selection of the network slice is then weighted by using credit/token-based weighted scheduling or probability-based weighted scheduling such that the frequency of selection of the particular network slice decreases as a difference between a higher current load of the particular network slice and a lower current load of at least one network slice of the plurality of network slices increases, as indicated by the load regions determined for each network slice of the plurality of network slices.

FIG. 14 illustrates a logical flow diagram showing one embodiment of a process 1400 for UPF load balancing using predicted CPU utilization and/or predicted memory utilization of new UE on the network based on network data analytics in accordance with embodiments described herein.

At 1402, the SMF 102 maintains load thresholds for each UPF of a plurality of UPFs in a cellular telecommunication network. The plurality of UPFs serve as anchor points between UE in the cellular telecommunication network and a DN. Each UPF of the plurality of UPFs is a virtual network function responsible for interconnecting PDU sessions between the UE and the DN by anchoring the PDU sessions on individual UPFs. The load thresholds for each UPF depend on a respective capacity of each UPF to have PDU sessions anchored thereon.

At 1404, the SMF 102 receives a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network.

At 1406, the SMF 102 selects a UPF of the plurality of UPFs on which to anchor the PDU session based on a location of the new UE, load-regions for each UPF of the plurality of UPFs defined by the load thresholds and one or more of predicted CPU utilization and predicted memory utilization of the new UE based on network data analytics. In some embodiments, the network data analytics may be provided via an NWDAF of a 5G mobile network of which the cellular telecommunication network is comprised.

FIG. 15 illustrates a logical flow diagram showing one embodiment of a process 1500 for selecting the UPF, which is useful in the process 1400 of FIG. 14 in accordance with embodiments described herein.

At 1502, the SMF 102 uses the network data analytics to predict one or more of CPU utilization and memory utilization of the UE and load on a UPF of the new UE appearing on the cellular telecommunication network based on one or more of the predicted CPU utilization and predicted memory utilization.

At 1504, the SMF 102 selects a UPF of the plurality of UPFs on which to anchor the PDU session based on a location of the new UE, load-regions for each UPF of the plurality of UPFs defined by the load thresholds and the predicted load of the new UE on a UPF.

FIG. 16 illustrates a logical flow diagram showing one embodiment of a process for 1600 selecting the UPF using AI or machine learning ML algorithms to perform predictive analysis of CPU utilization and/or predicted memory utilization, which is useful in the process 1500 of FIG. 15 in accordance with embodiments described herein.

At 1602, the SMF 102 uses artificial intelligence (AI) or machine learning (ML) algorithms to perform predictive analysis of one or more of CPU utilization and memory utilization of the new UE and resulting load on a UPF of the new UE appearing on the cellular telecommunication network based on historical activity of the new UE appearing on the cellular telecommunication network.

At 1604, the SMF 102 implements a weighted scheduling of load on UPFs to achieve UPF load-balancing based on one or more of the predicted CPU utilization and predicted memory utilization of the new UE and resulting predicted load on a UPF of the new UE. This weighted scheduling can be implemented using credit/token based scheduling algorithms or statistical based scheduling algorithms (using probability). For example, in one embodiment, the SMF 102 may increase a probability that a particular UPF will be selected in response to a current load of the particular UPF being currently in a particular load-region as compared to other UPFs of the plurality of UPFs and the resulting predicted load resulting from one or more of the predicted CPU utilization and predicted memory utilization being at a particular level. The SMF 102 may decrease a probability that the particular UPF in the plurality of UPFs will be overloaded beyond a threshold amount compared to other UPFs in the plurality of UPFs based on the resulting predicted load by changing the probability of whether the particular UPF will be selected based on the resulting predicted load resulting from one or more of the predicted CPU utilization and predicted memory utilization. Such load balancing may instead be achieved using credit/token based scheduling (e.g., weighted round robin).

FIG. 17 illustrates a chart 1700 showing an example of possible load-regions that a current load of a UPF may be determined to fall within that may be used in the processes of FIGS. 2-7 and 15-17 in accordance with embodiments described herein.

The chart 1700 indicates the load region 1702 and the range of percentage of total load capacity 1704 for each load-region 1702 defined by respective load thresholds indicated in the chart 1700. In the present example, the “Low” load region indicates a current UPF load of less than 30% of the total load capacity. The “Medium” load region indicates a current UPF load of greater than or equal to 30% and less than 55% of the total load capacity. The “High” load region indicates a current UPF load of greater than or equal to 55% and less than 75% of the total load capacity. The “Very High” load region indicates a current UPF load of greater than or equal to 75% of the total load capacity. There may be additional or different load regions in various other embodiments. The chart 1700 may be stored or represented as a data structure in computer memory and may be maintained and/or accessible by the SMF 102.

FIG. 18 illustrates a timeline 1800 showing an example of possible UPF load balancing that may occur according to the processes of FIGS. 2-4 with two UPFs determined to fall within particular different load-regions of those shown in the chart 1700 FIG. 17 at particular times in accordance with embodiments described herein.

For each example point in time t=1, t=2, t=3 and t=4, shown in the timeline 1800 is the determined UPF1 load 1802, the determined UPF2 load 1806 and the corresponding UPF1 load balancing action 1804 and UPF2 load balancing action 1808.

Referring now also to FIG. 1 , in the present example, at time t=1, the SMF 102 determines that the current load of UPF1 104 is 20% of the total load capacity for UPF1 104 and thus determines the load region or UPF1 104 is “low” based on the load thresholds in the chart 1700 of FIG. 17 . At time t=1, the SMF 102 also determines that the current load of UPF2 106 is 2% of the total load capacity for UPF2 106 and thus determines the load region or UPF2 106 is also “low” based on the load thresholds in the chart 1700 of FIG. 17 . Based on the determined load regions for UPF1 104 and UPF2 106, any new UE in the region of UPF1 104 (e.g., the region of UPF1 104 being a respective geographic area associated with data center 1) are anchored on UPF1 104 and any new UE in the region of UPF2 106 (e.g., the region of UPF2 106 being a respective geographic area associated with data center 2) are anchored on UPF2 106.

At time t=2, the SMF 102 determines that the current load of UPF1 104 is 45% of the total load capacity for UPF1 104 and thus determines the load region or UPF1 104 is “medium” based on the load thresholds in the chart 1700 of FIG. 17 . At time t=2, the SMF 102 also determines that the current load of UPF2 106 is 10% of the total load capacity for UPF2 106 and thus determines the load region or UPF2 106 is “low” based on the load thresholds in the chart 1700 of FIG. 17 . Based on the determined load regions for UPF1 104 and UPF2 106, the weights determined by the SMF 102 for UPF1 104 load balancing are 1 & 2. In particular, for every three new UEs in the region of UPF1 104 (data center 1), one is anchored on UPF1 104 and the other two are anchored on UPF2 106. In various embodiments, the load balancing can be done using credit/token based scheduling algorithms (using weighted round robin) or done randomly (using statistical based scheduling algorithms using probability): with probability ⅓ a new UE is anchored on UPF1 104 and with probability ⅔ the new UE is anchored on UPF2 106. Any new UE in the region of UPF2 106 are anchored on UPF2 106 (data center 2).

At time t=3, the SMF 102 determines that the current load of UPF1 104 is 65% of the total load capacity for UPF1 104 and thus determines the load region or UPF1 104 is “high” based on the load thresholds in the chart 1700 of FIG. 17 . At time t=3, the SMF 102 also determines that the current load of UPF2 106 is 19% of the total load capacity for UPF2 106 and thus determines the load region or UPF2 106 is “low” based on the load thresholds in the chart 1700 of FIG. 17 . Based on the determined load regions for UPF1 104 and UPF2 106, the weights determined by the SMF 102 for UPF1 104 load balancing are 1 & 4. In particular for every five new UEs in the region of UPF1 (data center 1), one is anchored on UPF1 and the other four are anchored on UPF2. In various embodiments, the load balancing can be done by the SMF 102 using weighted round robin or done randomly, with probability ⅕ a new UE is anchored on UPF1 and with probability ⅘ the new UE is anchored on UPF2). Any new UE in the region of UPF2 106 (e.g., the region of UPF2 106 being a respective geographic area associated with data center 2) are anchored on UPF2 106 (data center 2).

At time t=4, the SMF 102 determines that the current load of UPF1 104 is 75% of the total load capacity for UPF1 104 and thus determines the load region or UPF1 104 is “very high” based on the load thresholds in the chart 1700 of FIG. 17 . At time t=4, the SMF 102 also determines that the current load of UPF2 106 is 25% of the total load capacity for UPF2 106 and thus determines the load region or UPF2 106 is “low” based on the load thresholds in the chart 1700 of FIG. 17 . Based on the determined load regions for UPF1 104 and UPF2 106, any new UE in the region of UPF1 104 (data center 1) are anchored on UPF2 106 and any new UE in the region of UPF2 106 (data center 2) are also anchored on UPF2 106. In some embodiments, the credit based scheduling method, such as the weighted round robin scheduling, disclosed herein is based on a probabilistic model. Alternatively, a credit/token based weighted round robin scheduling can be used in various other embodiments.

FIG. 19 illustrates a timeline showing an example of possible UPF load balancing that may occur according to the processes of FIGS. 5-7 with two UPFs determined to fall within particular different load-regions of those shown in FIG. 17 at particular times in accordance with embodiments described herein.

For each example point in time t=1, t=2, t=3 and t=4, shown in the timeline 1900 is the determined UPF1 load 1902, the determined UPF2 load 1906, the corresponding UPF1 load balancing action 1904 and UPF2 load balancing action 1908, as well as example new UE predicted loads 1910. For example, the predicted load may be based on data from the network data analytics function (NWDAF). The predicted load may be measured in units based on throughput (e.g., packets per second, bytes per second, and/or bits per second), CPU utilization (e.g., CPU clock cycles, clock ticks, CPU time, CPU time per second, process time, percentage of CPU capacity utilization) and/or memory utilization, (megabytes of memory, and/or percentage of memory capacity utilization) or any combination thereof.

Referring now also to FIG. 1 , in the present example, at time t=1, the SMF 102 determines that the current load of UPF1 104 is 20% of the total load capacity for UPF1 104 and thus determines the load region or UPF1 104 is “low” based on the load thresholds in the chart 1700 of FIG. 17 . At time t=1, the SMF 102 also determines that the current load of UPF2 106 is 2% of the total load capacity for UPF2 106 and thus determines the load region or UPF2 106 is also “low” based on the load thresholds in the chart 1700 of FIG. 17 . In this case, based on the determined load regions for UPF1 104 and UPF2 106, regardless of any predicted load of the new UE, any new UE in the region of UPF1 104 (data center 1) are anchored on UPF1 104 and any new UE in the region of UPF2 106 (data center 2) are anchored on UPF2 106.

At time t=2, the SMF 102 determines that the current load of UPF1 104 is 45% of the total load capacity for UPF1 104 and thus determines the load region or UPF1 104 is “medium” based on the load thresholds in the chart 1700 of FIG. 17 . At time t=2, the SMF 102 also determines that the current load of UPF2 106 is 10% of the total load capacity for UPF2 106, and thus determines the load region or UPF2 106 is “low” based on the load thresholds in the chart 1700 of FIG. 17 . Based on the determined load regions for UPF1 104 and UPF2 106, the weights determined by the SMF 102 for UPF1 104 load balancing are 1 & 2. For example, based on the detected predicted load of the new UE appearing on the network, if the SMF 102 determines that the predicted load of the new UE is 2 units of load, the SMF 102 will perform load balancing such that there is a 43% probability the SMF 102 anchors the UE to UPF1 104 and a 57% probability the SMF 102 anchors the UE to UPF2 106. If the SMF 102 determines that the predicted load of the new UE is 1 unit of load, the SMF 102 will perform load balancing such that there is a 25% probability the SMF 102 anchors the UE to UPF1 104 and a 75% probability the SMF 102 anchors the UE to UPF2 106. Any new UE in the region of UPF2 (data center 2) 106 are anchored on UPF2 106.

At time t=3, the SMF 102 determines that the current load of UPF1 104 is 65% of the total load capacity for UPF1 104 and thus determines the load region or UPF1 104 is “high” based on the load thresholds in the chart 1700 of FIG. 17 . At time t=3, the SMF 102 also determines that the current load of UPF2 106 is 19% of the total load capacity for UPF2 106 and thus determines the load region or UPF2 106 is “low” based on the load thresholds in the chart 1700 of FIG. 17 . Based on the determined load regions for UPF1 104 and UPF2 106, the weights determined by the SMF 102 for UPF1 104 load balancing are 1 & 4. For example, based on the detected predicted load of the new UE appearing on the network, if the SMF 102 determines that the predicted load of the new UE is 2 units of load, the SMF 102 will perform load balancing such that there is a 10% probability the SMF 102 anchors the UE to UPF1 104 and a 90% probability the SMF 102 anchors the UE to UPF2 106. If the SMF 102 determines that the predicted load of the new UE is 1 unit of load, the SMF 102 will perform load balancing such that there is a 28.6% probability the SMF 102 anchors the UE to UPF1 104 and a 71.4% probability the SMF 102 anchors the UE to UPF2 106. Any new UE in the region of UPF2 106 (data center 2) are anchored on UPF2 106.

At time t=4, the SMF 102 determines that the current load of UPF1 104 is 75% of the total load capacity for UPF1 104 and thus determines the load region or UPF1 104 is “very high” based on the load thresholds in the chart 1700 of FIG. 17 . At time t=4, the SMF 102 also determines that the current load of UPF2 106 is 25% of the total load capacity for UPF2 106 and thus determines the load region or UPF2 106 is “low” based on the load thresholds in the chart 1700 of FIG. 17 . In this case, based on the determined load regions for UPF1 104 and UPF2 106, regardless of any predicted load of the new UE, any new UE in the region of UPF1 104 (data center 1) are anchored on UPF2 106 and any new UE in the region of UPF2 106 (data center 2) are also anchored on UPF2 106.

FIG. 20 illustrates a chart 2000 showing an example of possible load-regions for non-low latency traffic that a current load of a UPF may be determined to fall within that may be used in the processes of FIGS. 8-10 in accordance with embodiments described herein.

The chart 2000 indicates the load region 2002 and the range of percentage of total load capacity 2004 for each load-region 2002 defined by respective load thresholds indicated in the chart 1700. The load-regions shown in the chart 2000 are used for UPF load balancing based on special considerations for low latency traffic. The load thresholds are reduced compared to those of chart 1700 in FIG. 17 by a percentage amount of capacity dedicated for low-latency network traffic. In the present example, the percentage amount of capacity dedicated for low-latency network traffic is 10% and thus the load thresholds for non-low latency traffic are reduced by 10%. In particular, “Low” load region indicates a current UPF load of less than 20% of the total load capacity. The “Medium” load region indicates a current UPF load of greater than or equal to 20% and less than 45% of the total load capacity. The “High” load region indicates a current UPF load of greater than or equal to 45% and less than 65% of the total load capacity. The “Very High” load region indicates a current UPF load of greater than or equal to 65% of the total load capacity. There may be additional or different load regions in various other embodiments. The chart 1700 may be stored or represented as a data structure in computer memory and may be maintained and/or accessible by the SMF 102.

In one embodiment, in performing UPF load balancing based on special considerations for low latency traffic, the SMF 102 may perform such load balancing in the manner described with respect to the processes of FIGS. 8-10 and the example herein described with respect to FIG. 18 , but uses the non-low latency load thresholds in chart 1700 instead that are reduced to dedicate 10% of the total load capacity for low-latency network traffic.

Also, a chart and/or corresponding data structure similar to that of FIG. 17 using load thresholds shown therein may be generated or used by the SMF 102 to perform UPF load balancing supporting multiple slices as described herein with respect to the processes of FIGS. 11-13 . In such an embodiment, the chart and/or corresponding data structure also or instead indicates such load-thresholds for each slice depending on the UPF and network slice capacity. For example, these load thresholds may be percentage based, such as 30%, 55%, and 75% for slice 1 and 30%, 45%, and 65% for slice 2. Also, depending on the UPFs slice based load-regions, the SMF 102 creates slice based weights for a weighted load balancing between slices of different UPFs. The SMF 102 maintains the load-regions of the UPFs and creates the slice weights for the weighted load balancing of the UEs/PDU sessions among the UPFs. In such an embodiment, depending on the UPFs slice loads, the SMF 102 creates slice weights for a weighted load balancing of the UEs/PDU sessions among the UPFs.

In various embodiments, there may be additional UPFs and additional corresponding data centers. Additional load regions may be determined for each UPF, and the weighting and load balancing may be performed, in one example embodiment as described herein, to adjust the probabilities that a new UE appearing in the network is anchored on a particular UPF based on determined load regions for each UPF and the location of the UE. Such load balancing may instead be achieved using credit/token based scheduling (e.g., weighted round robin).

FIG. 21 shows a system diagram that describe various implementations of computing systems 2100 for implementing embodiments described herein.

The SMF 102 and the UPF, such as UPF1 104 and UPF2 106, can be implemented either as a network elements on dedicated hardware, as a software instance running on dedicated hardware, or as a virtualized function instantiated on an appropriate platform, e.g., a cloud infrastructure. In some embodiments, such NFs may be completely software-based and designed as cloud-native, meaning that they're agnostic to the underlying cloud infrastructure, allowing higher deployment agility and flexibility. However, FIG. 21 illustrates an example of underlying hardware on which the SMF 102 and the UPF, such as UPF1 104 and UPF2 106, may be implemented. For example, SMF 102 may be implemented using SMF computer system(s) 2101. In some embodiments, one or more special-purpose computing systems may be used to implement SMF 102. Accordingly, various embodiments described herein may be implemented in software, hardware, firmware, or in some combination thereof. SMF computer system(s) 2101 may include memory 2102, one or more central processing units (CPUs) 2114, I/O interfaces 2118, other computer-readable media 2120, and network connections 2122.

Memory 2102 may include one or more various types of non-volatile and/or volatile storage technologies. Examples of memory 2102 may include, but are not limited to, flash memory, hard disk drives, optical drives, solid-state drives, various types of random access memory (RAM), various types of read-only memory (ROM), other computer-readable storage media (also referred to as processor-readable storage media), or the like, or any combination thereof. Memory 2102 may be utilized to store information, including computer-readable instructions that are utilized by CPU 2114 to perform actions, including embodiments described herein.

Memory 2102 may have stored thereon SMF module 2104. The SMF module 2104 is configured to implement and/or perform some or all of the functions of the SMF 102 described herein. Memory 2102 may also store other programs and data 2110, which may include load thresholds, load-regions, databases, load-balancing rules, AI or ML programs to perform predictive analysis of UPF load based on predicted UE throughput, CPU utilization and/or memory utilization using data from the NWDAF, user interfaces, operating systems, other network management functions, other NFs, etc.

Network connections 2122 are configured to communicate with other computing devices to facilitate the load balancing described herein. In various embodiments, the network connections 2122 include transmitters and receivers (not illustrated) to send and receive data as described herein, such as sending data to and receiving data from UPFs, UEs and other NFs to send and receive instructions, commands and data to implement the processes described herein. I/O interfaces 2118 may include a video interfaces, other data input or output interfaces, or the like. Other computer-readable media 2120 may include other types of stationary or removable computer-readable media, such as removable flash drives, external hard drives, or the like.

In some embodiments, one or more special-purpose computing systems may be used to implement UPF, such as UPF1 104 and UPF2 106. Accordingly, various embodiments described herein may be implemented in software, hardware, firmware, or in some combination thereof. UPF computer system(s) 2112 is an example of a computer system that may implement a UPF, such as UPF1 104 and UPF2 106. For example, computer system(s) 2112 may be present in data center 1 to implement UPF1 104 or present in data center 2 to implement UPF2 106. Computer system(s) 2112 may include memory 2130, one or more central processing units (CPUs) 2144, I/O interfaces 2148, other computer-readable media 2150, and network connections 2152.

Memory 2130 may include one or more various types of non-volatile and/or volatile storage technologies similar to memory 2102. Memory 2130 may be utilized to store information, including computer-readable instructions that are utilized by CPU 2144 to perform actions, including embodiments described herein.

Memory 2130 may have stored thereon UPF module 2124. The UPF module 214 receives the messages or instructions from the SMF module 204 to perform the load balancing operations as described herein. Memory 2130 may also store other programs and data 2138, which may include load thresholds, load-regions, databases, load-balancing rules, AI or ML programs to perform predictive analysis of UPF load based on predicted UE throughput, CPU utilization and/or memory utilization using data from the NWDAF, user interfaces, operating systems, other network management functions, other NFs, etc.

Network connections 2152 are configured to communicate with other computing devices, such as SMF computer system(s) 2101. In various embodiments, the network connections 2152 include transmitters and receivers (not illustrated) to send and receive data as described herein. I/O interfaces 2148 may include one or more other data input or output interfaces. Other computer-readable media 2150 may include other types of stationary or removable computer-readable media, such as removable flash drives, external hard drives, or the like.

The various embodiments described above can be combined to provide further embodiments. These and other changes can be made to the embodiments in light of the above-detailed description. In general, in the following claims, the terms used should not be construed to limit the claims to the specific embodiments disclosed in the specification and the claims, but should be construed to include all possible embodiments along with the full scope of equivalents to which such claims are entitled. Accordingly, the claims are not limited by the disclosure. 

The invention claimed is:
 1. A system, comprising: a memory that stores computer instructions; and a processor that executes the computer instructions to perform actions, the actions including: maintaining a plurality of load thresholds for each network slice of a plurality of network slices, wherein: each network slice of each respective set of network slices comprises of a set of virtual network resources and network traffic flows associated with the network slice and represents an independent virtualized instance of a network defined by allocation of a subset of available network resources in the cellular telecommunication network; each network slice of the plurality of network slices is supported by a respective user plane function (UPF) of a plurality of UPFs in a cellular telecommunication network; the plurality of UPFs serve as anchor points between user equipment (UE) in the cellular telecommunication network and a data network (DN); each UPF of the plurality of UPFs is a virtual network function responsible for interconnecting packet data unit (PDU) sessions between the user equipment (UE) and the DN by anchoring the PDU sessions on individual UPFs; the plurality of load thresholds for each network slice depend on a respective capacity of each network slice and total capacity of each UPF supporting each network slice to have PDU sessions anchored thereon; and an amount of load put on a network slice by a UE appearing in the cellular telecommunication network is assumed to be identical for all UEs appearing in the cellular telecommunication network; receiving a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network; selecting a network slice of the plurality of network slices on which to anchor the PDU session based on a location of the new UE and determined load-regions for each network slice of the plurality of network slices defined by the plurality of load thresholds; and anchoring the PDU session of the new UE to the selected network slice and the respective UPF supporting the selected network slice, wherein the selecting a network slice of the plurality of network slices includes: generating weights for selecting the network slice based on the determined load-regions; selecting the network slice based on the generated weights; generating multiple load-regions, wherein each load-region corresponds to a different range of current load of a network slice defined by one or more of lower and upper threshold percentages of network slice load capacity; in response to receiving the request to anchor the PDU session, for each network slice of the plurality of network slices, determining a load region from the multiple load-regions that a current load of the network slice falls within; and selecting a network slice of the plurality of network slices based on the determined load-regions for the plurality of network slices and the weights generated based on the determined load regions.
 2. The system of claim 1 wherein each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice and selecting a network slice of the plurality of network slices based on the generated weights and the determined load-regions for the plurality of network slices includes: determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls; and selecting the particular network slice in response to the determined load-region of the particular network slice being a load-region indicating a current load of the particular network slice is below a threshold capacity.
 3. The system of claim 1, wherein each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice and selecting a network slice of the plurality of network slices based on the generated weights and the determined load-regions for the plurality of network slices includes: determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls; determining whether the particular network slice has a determined load region indicating a current load of the particular network slice is in a different load region indicating a higher current load of the particular network slice than a current load of another network slice of the plurality of network slices; and in response to the particular network slice having a determined load region indicating the current load of the particular network slice is in a different load region indicating a higher current load of the particular network slice than the current load of another network slice of the plurality of network slices, weighting the selection of a network slice of the plurality of network slices such that the particular network slice is not overloaded compared to the other network slice of the plurality of network slices by using credit/token-based weighted scheduling or probability-based weighted scheduling.
 4. The system of claim 1, wherein: each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice; the selecting a network slice of the plurality of network slices based on the generated weights and the determined load-regions for the plurality of network slices includes determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls; and the selection of the network slice is weighted by using credit/token-based weighted scheduling or probability-based weighted scheduling such that the frequency of selection of the particular network slice decreases as a difference between a higher current load of the particular network slice and a lower current load of at least one network slice of the plurality of network slices increases, as indicated by the load regions determined for each network slice of the plurality of network slices.
 5. The system of claim 1 wherein the generating multiple load-regions includes: generating a lowest load-region indicating a current network slice load less than a first threshold percentage of network slice capacity; generating one or more intermediate non-overlapping load-regions each defined by respective lower and upper threshold percentages of network slice capacity and indicating a current load greater than the lowest load-region; and generating a highest load-region indicating a current network slice load greater than a second threshold percentage of network slice capacity and greater than the one or more intermediate non-overlapping load-regions.
 6. A method, comprising: maintaining a plurality of load thresholds for each network slice of a plurality of network slices, wherein: each network slice of each respective set of network slices comprises of a set of virtual network resources and network traffic flows associated with the network slice and represents an independent virtualized instance of a network defined by allocation of a subset of available network resources in the cellular telecommunication network; each network slice of the plurality of network slices is supported by a respective user plane function (UPF) of a plurality of UPFs in a cellular telecommunication network; the plurality of UPFs serve as anchor points between user equipment (UE) in the cellular telecommunication network and a data network (DN); each UPF of the plurality of UPFs is a virtual network function responsible for interconnecting packet data unit (PDU) sessions between the user equipment (UE) and the DN by anchoring the PDU sessions on individual UPFs; the plurality of load thresholds for each network slice depend on a respective capacity of each network slice and total capacity of each UPF supporting each network slice to have PDU sessions anchored thereon; and an amount of load put on a network slice by a UE appearing in the cellular telecommunication network is assumed to be identical for all UEs appearing in the cellular telecommunication network; receiving a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network; selecting a network slice of the plurality of network slices on which to anchor the PDU session based on a location of the new UE and determined load-regions for each network slice of the plurality of network slices defined by the plurality of load thresholds; and anchoring the PDU session of the new UE to the selected network slice and the respective UPF supporting the selected network slice, wherein the selecting a network slice of the plurality of network slices includes: generating weights for selecting the network slice based on the determined load-regions; selecting the network slice based on the generated weights; generating multiple load-regions, wherein each load-region corresponds to a different range of current load of a network slice defined by one or more of lower and upper threshold percentages of network slice load capacity; in response to receiving the request to anchor the PDU session, for each network slice of the plurality of network slices, determining a load region from the multiple load-regions that a current load of the network slice falls within; and selecting a network slice of the plurality of network slices based on the determined load-regions for the plurality of network slices and the weights generated based on the determined load regions.
 7. The method of claim 6 wherein each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice and selecting a network slice of the plurality of network slices based on the generated weights and the determined load-regions for the plurality of network slices includes: determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls; and selecting the particular network slice in response to the determined load-region of the particular network slice being a load-region indicating a current load of the particular network slice is below a threshold capacity.
 8. The method of claim 6, wherein each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice and selecting a network slice of the plurality of network slices based on the generated weights and the determined load-regions for the plurality of network slices includes: determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls; determining whether the particular network slice has a determined load region indicating a current load of the particular network slice is in a different load region indicating a higher current load of the particular network slice than a current load of another network slice of the plurality of network slices; and in response to the particular network slice having a determined load region indicating the current load of the particular network slice is in a different load region indicating a higher current load of the particular network slice than the current load of another network slice of the plurality of network slices, weighting the selection of a network slice of the plurality of network slices such that the particular network slice is not overloaded compared to the other network slice of the plurality of network slices by using credit/token-based weighted scheduling or probability-based weighted scheduling.
 9. The method of claim 6, wherein: each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice; the selecting a network slice of the plurality of network slices based on the generated weights and the determined load-regions for the plurality of network slices includes determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls; and the selection of the network slice is weighted by using credit/token-based weighted scheduling or probability-based weighted scheduling such that the frequency of selection of the particular network slice decreases as a difference between a higher current load of the particular network slice and a lower current load of at least one network slice of the plurality of network slices increases, as indicated by the load regions determined for each network slice of the plurality of network slices.
 10. The method of claim 6 wherein the generating multiple load-regions includes: generating a lowest load-region indicating a current network slice load less than a first threshold percentage of network slice capacity; generating one or more intermediate non-overlapping load-regions each defined by respective lower and upper threshold percentages of network slice capacity and indicating a current load greater than the lowest load-region; and generating a highest load-region indicating a current network slice load greater than a second threshold percentage of network slice capacity and greater than the one or more intermediate non-overlapping load-regions.
 11. A non-transitory computer-readable storage medium having computer-executable instructions stored thereon that, when executed by at least one computer processor, cause actions to be performed including: maintaining a plurality of load thresholds for each network slice of a plurality of network slices, wherein: each network slice of each respective set of network slices comprises of a set of virtual network resources and network traffic flows associated with the network slice and represents an independent virtualized instance of a network defined by allocation of a subset of available network resources in the cellular telecommunication network; each network slice of the plurality of network slices is supported by a respective user plane function (UPF) of a plurality of UPFs in a cellular telecommunication network; the plurality of UPFs serve as anchor points between user equipment (UE) in the cellular telecommunication network and a data network (DN); each UPF of the plurality of UPFs is a virtual network function responsible for interconnecting packet data unit (PDU) sessions between the user equipment (UE) and the DN by anchoring the PDU sessions on individual UPFs; the plurality of load thresholds for each network slice depend on a respective capacity of each network slice and total capacity of each UPF supporting each network slice to have PDU sessions anchored thereon; and an amount of load put on a network slice by a UE appearing in the cellular telecommunication network is assumed to be identical for all UEs appearing in the cellular telecommunication network; receiving a request to anchor on a UPF a PDU session of a new UE newly appearing on the cellular telecommunication network; selecting a network slice of the plurality of network slices on which to anchor the PDU session based on a location of the new UE and determined load-regions for each network slice of the plurality of network slices defined by the plurality of load thresholds; and anchoring the PDU session of the new UE to the selected network slice and the respective UPF supporting the selected network slice, wherein the selecting a network slice of the plurality of network slices includes: generating weights for selecting the network slice based on the determined load-regions; selecting the network slice based on the generated weights; generating multiple load-regions, wherein each load-region corresponds to a different range of current load of a network slice defined by one or more of lower and upper threshold percentages of network slice load capacity; in response to receiving the request to anchor the PDU session, for each network slice of the plurality of network slices, determining a load region from the multiple load-regions that a current load of the network slice falls within; and selecting a network slice of the plurality of network slices based on the determined load-regions for the plurality of network slices and the weights generated based on the determined load regions.
 12. The non-transitory computer-readable storage medium of claim 11 wherein each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice and selecting a network slice of the plurality of network slices based on the generated weights and the determined load-regions for the plurality of network slices includes: determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls; and selecting the particular network slice in response to the determined load-region of the particular network slice being a load-region indicating a current load of the particular network slice is below a threshold capacity.
 13. The non-transitory computer-readable storage medium of claim 11, wherein each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice and selecting a network slice of the plurality of network slices based on the generated weights and the determined load-regions for the plurality of network slices includes: determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls; determining whether the particular network slice has a determined load region indicating a current load of the particular network slice is in a different load region indicating a higher current load of the particular network slice than a current load of another network slice of the plurality of network slices; and in response to the particular network slice having a determined load region indicating the current load of the particular network slice is in a different load region indicating a higher current load of the particular network slice than the current load of another network slice of the plurality of network slices, weighting the selection of a network slice of the plurality of network slices such that the particular network slice is not overloaded compared to the other network slice of the plurality of network slices by using credit/token-based weighted scheduling or probability-based weighted scheduling.
 14. The non-transitory computer-readable storage medium of claim 11, wherein: each network slice of the plurality of network slices is associated with a respective geographic area of the respective UPF supporting the network slice; the selecting a network slice of the plurality of network slices based on the generated weights and the determined load-regions for the plurality of network slices includes determining a particular network slice of the plurality of network slices is associated with a respective geographic area within which the location of the new UE falls; and the selection of the network slice is weighted by using credit/token-based weighted scheduling or probability-based weighted scheduling such that the frequency of selection of the particular network slice decreases as a difference between a higher current load of the particular network slice and a lower current load of at least one network slice of the plurality of network slices increases, as indicated by the load regions determined for each network slice of the plurality of network slices. 